﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DominioSATT;
using RepositorioSATT;

namespace ServiceSATT
{
    public class UbicacionService: ILocalidadService,IProvinciaService,IPaisService 
    {
        #region ILocalidadService Members

        void ILocalidadService.Listado(IListadoLocalidades ui)
        {
            ILocalidadRepositorio localidad = new UbicacionRepositorio();
            IProvinciaRepositorio prov = new UbicacionRepositorio();
            int idprov = prov.BuscarIDProvincia(ui.Provincia);
            ui.LstLocalidades = localidad.ListadoLocalidad(idprov);
        }

        void ILocalidadService.Agregar(IInterfazLocalidades ui)
        {
            ILocalidadRepositorio localidad = new UbicacionRepositorio();
            IProvinciaRepositorio prov = new UbicacionRepositorio();
            int idprov = prov.BuscarIDProvincia(ui.Provincia);
            localidad.AgregarLocalidad(idprov, ui.NombreLocalidad,true);
        }

        int ILocalidadService.BuscarID(string nombre)
        {
            ILocalidadRepositorio localidad = new UbicacionRepositorio();
            return localidad.BuscarIDLocalidad(nombre);
        }

        #endregion

        #region IProvinciaService Members

        void IProvinciaService.Listado(IListadoProvincia ui)
        {
            IPaisRepositorio Ipais = new UbicacionRepositorio();
            IProvinciaRepositorio prov = new UbicacionRepositorio();
            int idpais = Ipais.BuscarIDPais(ui.Pais);
            ui.LstProvincia = prov.ListadoProvincia(idpais);
        }

        void IProvinciaService.Agregar(IInterfazProvincias ui)
        {
            IProvinciaRepositorio prov = new UbicacionRepositorio();
            IPaisRepositorio Ipais = new UbicacionRepositorio();
            int idpais = Ipais.BuscarIDPais(ui.Pais);
            prov.AgregarProvincia(idpais, ui.NombreProvincia,true);
        }

        int IProvinciaService.BuscarID(string nombre)
        {
            IProvinciaRepositorio localidad = new UbicacionRepositorio();

            return localidad.BuscarIDProvincia(nombre);
        }

        #endregion

        #region IPaisService Members

        void IPaisService.Listado(IListadoPais ui)
        {
            IPaisRepositorio pais = new UbicacionRepositorio();
            ui.LstPais = pais.ListadoPais();
        }
        

        void IPaisService.Agregar(IInterfazPais ui)
        {
            IPaisRepositorio pais = new UbicacionRepositorio();
            pais.AgregarPais(ui.NombrePais,true);
        }
        void IPaisService.ListadoNac(IlistadoNacionalidad ui)
            {
                IPaisRepositorio pais = new UbicacionRepositorio();
                ui.LstNac = pais.ListadoPais();
            }

        int IPaisService.BuscarID(string nombre)
        {
            IPaisRepositorio localidad = new UbicacionRepositorio();
            return localidad.BuscarIDPais(nombre);
        }

        #endregion
    }
}
